#include "key.h"

void key_init(void)
{
	GPIO_InitTypeDef a_init, c_init;
	// 使能
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOA, ENABLE);
	
	// 初始化
	c_init.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
	c_init.GPIO_Speed = GPIO_Speed_50MHz;
	c_init.GPIO_Mode = GPIO_Mode_IPU;			// 设置为上拉输入模式
	GPIO_Init(GPIOC, &c_init);
	
	a_init.GPIO_Pin = GPIO_Pin_0;
	a_init.GPIO_Speed = GPIO_Speed_50MHz;
	a_init.GPIO_Mode = GPIO_Mode_IPD;			// 设置为下拉输入模式
	GPIO_Init(GPIOA, &a_init);
}

int8_t key_status(int8_t num)
{
	int ret = 0; // 返回 1 表示按下了按键
	
	switch (num) {
		case 0:
			ret = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_8);
			ret = !ret; // 读取 GPIOC 组的 8 号引脚的状态，取反并返回
			break;
		case 1:
			ret = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9);
			ret = !ret;
			break;
		case 2:
			ret = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);
			break;
		default:
			break;
	}
	
	return ret;
}
